﻿using System;
using System.Collections.Generic;
using GSQ.BusinessEntities;
using GSQ.DataAccess;


namespace GSQ.BusinessLogic
{
    public class ClientesBL
    {
        public decimal Insert(CLIENTES value)
        {
            if (value.IsValid())
            {
              return  new ClientesDA().Insert(value);
            }
            else
                throw new ArgumentException("La entidad no esta valida");
        }

        public decimal Update(CLIENTES newValue, CLIENTES oldValue)
        {
            if (newValue.IsValid())
            {
               return new ClientesDA().Update(newValue);
            }
            else
            throw new NotImplementedException();
        }

        public List<CLIENTES> GetAll()
        {
            return new ClientesDA().GetAll();
        }

        public CLIENTES GetById(decimal id)
        {
            return new ClientesDA().GetById(id);
        }

        public List<CLIENTES> GetByCliente(string value)
        {
            return new ClientesDA().GetByCliente(value);
        }

        public CLIENTES GetByRnc(string value)
        {
            return new ClientesDA().GetByRnc(value);
        }

        public List<CLIENTES> GetByCiudad(string value)
        {
            return new ClientesDA().GetByCiudad(value);
        }

        public List<CLIENTES> GetByCiudad(decimal value)
        {
            return new ClientesDA().GetByIdCiudad(value);
        }

        public List<CLIENTES> GetByCategoria(string value)
        {
            return new ClientesDA().GetByCategoria(value);
        }

        public List<CLIENTES> GetByCategoria(decimal value)
        {
            return new ClientesDA().GetByIdCategoria(value);
        }

        public List<CLIENTES_CAT> GetCategorias()
        {
            return new ClientesCatDA().GetAll();
        }

        public CLIENTES_CAT GetCategoriasById(decimal id)
        {
            return new ClientesCatDA().GetById(id);
        }
    }
}
